package single.demo06;

/**
 * 双重检查
 *
 * Double-Check概念是多线程开发中常使用到的
 * 在实际开发中，推荐使用这种单例设计模式
 */

public class Demo06 {
}

class Single{

    private Single(){};
    private static volatile Single instance;

    private static Single getInstance(){
        if(instance == null){
            synchronized (Single.class){
                if(instance == null){
                    instance = new Single();
                }
            }
        }
        return instance;
    }
}